INSERT INTO - instrukcja

Dodaje rekord lub rekordy do tabeli. Odwo│ania do niej nastΩpuj╣ jako do kwerendy do│╣czaj╣cej.

Sk│adnia

Kwerenda do│╣czaj╣ca wiele rekord≤w:

INSERT INTO cel [(pole_1[,pole_2[, ...]])] [IN zewnΩtrzna_baza_danych]
    SELECT [ƒr≤d│o.] pole_1[,pole_2[, ...]
    FROM wyra┐enie_tabelowe

Kwerenda do│╣czaj╣ca pojedynczy rekord:

INSERT INTO cel [(pole_1[,pole_2[, ...]])]
    VALUES (warto£µ_1[,warto£µ_2[, ...])

Sk│adnia instrukcji INSERT zawiera nastΩpuj╣ce elementy:

Element Opis
cel Nazwa tabeli lub kwerendy, do kt≤rej maj╣ byµ do│╣czone rekordy.
pole_1, pole_2 Nazwy p≤l, do kt≤rych bΩd╣ do│╣czane dane, je£li wystΩpuj╣ po argumencie cel, lub te┐ nazwy p≤l, z kt≤rych bΩd╣ pobierane dane, je£li wystΩpuj╣ po argumencie ƒr≤d│o.
zewnΩtrzna_baza_danych îcie┐ka do zewnΩtrznej bazy danych. Opis £cie┐ki mo┐na znaleƒµ pod has│em IN.
ƒr≤d│o Nazwa tabeli lub kwerendy, z kt≤rej bΩd╣ kopiowane rekordy.
wyra┐enie_tabelowe Nazwa tabeli lub tabel, z kt≤rych pobierane s╣ rekordy. Ten argument mo┐e byµ nazw╣ pojedynczej tabeli, lub wynikiem dzia│ania instrukcji INNER JOIN, LEFT JOIN, lub operacji RIGHT JOIN b╣dƒ zachowanej kwerendy.
warto£µ_1, warto£µ_2 Warto£ci, kt≤re maj╣ byµ umieszczone w okre£lonych polach nowego rekordu. Ka┐da warto£µ jest umieszczana w polu, kt≤re odpowiada pozycji warto£ci na li£cie: warto£µ_1 zostaje umieszczona w polu_1 nowego rekordu, warto£µ_2 w polu_2, i tak dalej. Warto£ci musz╣ byµ oddzielone przecinkami, za£ pola tekstowe musz╣ byµ ujΩte w cudzys│≤w (' ').

Uwagi

Aby dodaµ do tabeli pojedynczy rekord, mo┐na skorzystaµ z instrukcji INSERT INTO, u┐ywaj╣c przytoczonej wy┐ej sk│adni kwerendy do│╣czaj╣cej pojedynczy rekord. W takim przypadku nazwa i warto£µ ka┐dego pola rekordu jest okre£lona w kodzie. Nale┐y okre£liµ ka┐de z p≤l rekordu, kt≤rego warto£µ ma zostaµ zmieniona, oraz warto£µ tego pola. W przypadku, gdy nie wszystkie pola s╣ wymienione, warto£µ domy£lna Null jest przyjmowana dla pominiΩtych kolumn. Rekordy s╣ dodawane na ko±cu tabeli.

Mo┐na te┐ u┐yµ instrukcji INSERT INTO, aby dodaµ zestaw rekord≤w z innej tabeli lub kwerendy przez u┐ycie klauzuli SELECT ... FROM jak pokazano powy┐ej w sk│adni kwerendy do│╣czaj╣cej wiele rekord≤w. W takim przypadku klauzula SELECT okre£la pola, kt≤re maj╣ zostaµ do│╣czone do podanej tabeli cel.

Tabele ƒr≤d│o i cel mog╣ okre£laµ zar≤wno tabelΩ, jak i kwerendΩ. Je£li okre£lono kwerendΩ, aparat baz danych Microsoft Jet do│╣cza rekordy do wszystkich tabel okre£lonych w kwerendzie.

Instrukcja INSERT INTO jest nieobowi╣zkowa, lecz je£li wystΩpuje, to musi poprzedzaµ instrukcjΩ SELECT.

Je£li tabela docelowa zawiera klucz podstawowy, nale┐y zadbaµ o to, aby dodawaµ unikatowe warto£ci, nie bΩd╣ce warto£ci╣ Null do pola lub p≤l klucza podstawowego; w przeciwnym wypadku aparat baz danych Microsoft Jet nie doda tych rekord≤w.

Je£li do│╣czasz rekordy do tabeli z polem Autonumer i chcesz przenumerowaµ do│╣czone rekordy, nie do│╣czaj pola Autonumer w kwerendzie. Pole Autonumer powinno byµ w│╣czone do kwerendy, je£li maj╣ byµ zachowane oryginalne warto£ci tego pola.

Klauzula IN s│u┐y do do│╣czania rekord≤w do tabeli znajduj╣cej siΩ w innej bazie danych.

Aby utworzyµ now╣ tabelΩ, nale┐y zamiast kwerendy tworz╣cej tabelΩ u┐yµ instrukcji SELECT... INTO.

Aby przed uruchomieniem kwerendy do│╣czaj╣cej dowiedzieµ siΩ, kt≤re rekordy zostan╣ do│╣czone, nale┐y najpierw wykonaµ i obejrzeµ wyniki kwerendy wybieraj╣cej, u┐ywaj╣c tych samych kryteri≤w wyboru.

Kwerenda do│╣czaj╣ca kopiuje rekordy z jednej lub wielu tabel do innej tabeli. Tabele, kt≤re zawieraj╣ rekordy, nie s╣ zmieniane przez kwerendΩ do│╣czaj╣c╣.

Zamiast do│╣czaµ istniej╣ce rekordy z innej tabeli, mo┐na okre£liµ warto£µ ka┐dego pola w pojedynczym nowym rekordzie, u┐ywaj╣c do tego celu klauzuli VALUES. Je£li pominiΩto listΩ p≤l, to klauzula VALUES musi zawieraµ warto£µ dla ka┐dego pola tabeli; w przeciwnym przypadku operacja INSERT nie powiedzie siΩ. Instrukcji INSERT INTO z klauzul╣ VALUES nale┐y u┐yµ do do│╣czenia ka┐dego nowego rekordu.

Zobacz te┐
FROM û klauzula (Microsoft Jet SQL) SELECT - instrukcja (Microsoft Jet SQL)
IN û klauzula (Microsoft Jet SQL) SELECT...INTO û instrukcja (Microsoft Jet SQL)
INNER JOIN û operacja (Microsoft Jet SQL) WHERE û klauzula (Microsoft Jet SQL)
LEFT JOIN, RIGHT JOIN û operacje (Microsoft Jet SQL)  

Przyk│ad

INSERT INTO û przyk│ad instrukcji